﻿Public Class frmInformeCOrdenesServicios

    Private Sub Button2_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button2.Click
        ''Valido la fecha
        If ValidaFecha(dtpFecDesde.Value, dtpFecHasta.Value) = False Then
            Exit Sub
        End If

        If cmbTecnico.Items.Count = 0 Then
            MessageBox.Show("Debe ingresar una Sucursal y Tecnico Valido.", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
            Exit Sub
        End If

        Dim OSBusiness As New businessOS()
        Dim ListaOS As New List(Of clsOrden_Servicio)
        Dim Cod_Suc As Int32
        Dim OS_Id As Int32
        Dim Estado As Int32
        Dim Tipo As Int32
        Dim Tecnico As Int32
        Dim Importe As Decimal
        Dim FecDesde As Date
        Dim FecHasta As Date


        Try
            ''OS_id
            If txtNroOs.Text.Trim.Length > 0 Then
                OS_Id = Convert.ToInt32(txtNroOs.Text.Trim)
            Else
                OS_Id = 0
            End If

            If txtImporte.Text.Trim.Length > 0 Then
                Importe = Convert.ToDecimal(txtImporte.Text.Trim)
            Else
                Importe = 0
            End If

            Estado = Convert.ToInt32(cmbEstado.SelectedValue)
            Tipo = Convert.ToInt32(cmbTipo.SelectedValue)
            Tecnico = Convert.ToInt32(cmbTecnico.SelectedValue)
            FecDesde = dtpFecDesde.Value
            FecHasta = dtpFecHasta.Value

            Select Case cmbSucursal.Text
                Case "SUCURSAL 1"
                    Cod_Suc = 1
                Case "SUCURSAL 2"
                    Cod_Suc = 2
                Case "CASA CENTRAL"
                    Cod_Suc = 3
            End Select

            ListaOS = OSBusiness.ConsultaOS(OS_Id, FecDesde, FecHasta, Importe, Estado, Tipo, Cod_Suc, Tecnico)

            If ListaOS.Count > 0 Then
                TraeConsulta(ListaOS)
            Else
                MessageBox.Show("No hay datos para mostrar con los parametros ingresados", "Aviso", MessageBoxButtons.OK, MessageBoxIcon.Information)
            End If
        Catch ex As Exception
        End Try
    End Sub
    Private Sub TextBox1_KeyPress(ByVal sender As Object, ByVal e As System.Windows.Forms.KeyPressEventArgs) Handles txtImporte.KeyPress
        validarDouble(e)
    End Sub

    Private Sub frmInformeCOrdenesServicios_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
        dtpFecDesde.MaxDate = Now.Date
        dtpFecHasta.MaxDate = Now.Date
        CargaTipo()
        CargaEstados()
        LimpiaFormulario()
    End Sub
    Private Sub LimpiaFormulario()
        dtpFecDesde.Value = Now.Date
        dtpFecHasta.Value = Now.Date
        txtImporte.Text = ""
        cmbEstado.SelectedValue = 99
        cmbSucursal.SelectedIndex = 0
        cargaTecnicos()
        If cmbTecnico.Items.Count > 0 Then
            cmbTecnico.SelectedValue = 99
            cmbTecnico.Enabled = True
        Else
            cmbTecnico.Enabled = False
        End If
        cmbTipo.SelectedValue = 99

        dtpFecDesde.Enabled = True
        dtpFecHasta.Enabled = True
        txtImporte.Enabled = True
        cmbEstado.Enabled = True
        cmbSucursal.Enabled = True
        cmbTipo.Enabled = True
    End Sub
    Public Sub CargaTipo()
        Dim ListaTipoOS As New List(Of clsTipo_Os)
        Dim TipoOSDao As New daoTipo_Os
        ListaTipoOS = TipoOSDao.TraeTiposOrdenServicio()
        Dim tipoOS As New clsTipo_Os()
        tipoOS.Descri = "TODOS"
        tipoOS.Tipo_Os = 99
        ListaTipoOS.Add(tipoOS)
        tipoOS.Dispose()

        cmbTipo.DataSource = ListaTipoOS
        cmbTipo.ValueMember = "Tipo_Os"
        cmbTipo.DisplayMember = "Descri"
    End Sub
    Private Sub CargaEstados()
        Dim ListaEstados As New List(Of clsEstado_Os)
        Dim EstadosDao As New daoEstado_Os
        ListaEstados = EstadosDao.TraeEstadosOrdenServicio()
        Dim estadoOS As New clsEstado_Os()
        estadoOS.EstadoOs_Desc = "TODOS"
        estadoOS.EstadoOs_Id = 99
        ListaEstados.Add(estadoOS)
        estadoOS.Dispose()

        cmbEstado.DataSource = ListaEstados
        cmbEstado.ValueMember = "EstadoOs_Id"
        cmbEstado.DisplayMember = "EstadoOs_Desc"
    End Sub

    Private Sub cargaTecnicos()
        Dim Cod_Suc As Int32
        Dim ListaTecnico As New List(Of clsEmpleado)
        Dim EmpleadoBusiness As New businessEmpleado()
        Select Case cmbSucursal.Text
            Case "SUCURSAL 1"
                Cod_Suc = 1
            Case "SUCURSAL 2"
                Cod_Suc = 2
            Case "CASA CENTRAL"
                Cod_Suc = 3
        End Select


        ListaTecnico = EmpleadoBusiness.TraeTecnicosPorSucursal(Cod_Suc)
        Dim Tecnico As New clsEmpleado()
        Tecnico.Emp_Id = 99
        Tecnico.Apellido = "TODOS"
        ListaTecnico.Add(Tecnico)
        Tecnico.Dispose()

        cmbTecnico.DataSource = ListaTecnico
        cmbTecnico.ValueMember = "Emp_Id"
        cmbTecnico.DisplayMember = "Apellido"
    End Sub
    Private Sub Button3_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button3.Click
        LimpiaFormulario()
    End Sub
    Private Sub cmbSucursal_SelectedIndexChanged(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles cmbSucursal.SelectedIndexChanged
        cargaTecnicos()
        If cmbTecnico.Items.Count > 0 Then
            cmbTecnico.SelectedIndex = 0
            cmbTecnico.Enabled = True
        Else
            cmbTecnico.Enabled = False
        End If
    End Sub

    Private Sub Button1_Click(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles Button1.Click
        Me.Close()
    End Sub
    Private Sub TraeConsulta(ByVal ListaOS As List(Of clsOrden_Servicio))
        Me.Enabled = False
        ConsultarOrdenServicio.ModoAcceso = "INFORME OS"
        ConsultarOrdenServicio.FormatoGrilla()
        ConsultarOrdenServicio.CargaGrilla(ListaOS)
        ConsultarOrdenServicio.MdiParent = Me.MdiParent
        ConsultarOrdenServicio.Show()
    End Sub

    Private Sub GroupBox1_Enter(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles GroupBox1.Enter

    End Sub
End Class